package com.ruoyi.college.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 二级学科管理对象 second_level_subject
 * 
 * @author ruoyi
 * @date 2025-07-31
 */
public class SecondLevelSubject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识 */
    private String id;

    /** 所属一级学科id */
    @Excel(name = "所属一级学科id")
    private String firstSubjectId;

    /** 所属学院id */
    @Excel(name = "所属学院id")
    private String collegeId;

    /** 二级学科代码 */
    @Excel(name = "二级学科代码")
    private String secondSubjectCode;

    /** 二级学科名称 */
    @Excel(name = "二级学科名称")
    private String secondSubjectName;

    /** 学科英文名称 */
    @Excel(name = "学科英文名称")
    private String secondNameEnglish;

    /** 二级学科简介 */
    @Excel(name = "二级学科简介")
    private String description;

    /** 附件存储路径 */
    @Excel(name = "附件存储路径")
    private String attachmentPath;

    /** 二级学科重点研究方向 */
    @Excel(name = "二级学科重点研究方向")
    private String researchDirection;

    /** 二级学科负责人id */
    @Excel(name = "二级学科负责人id")
    private Long leaderId;

    /** 状态(含审批中状态):1(启用),0(停用) */
    @Excel(name = "状态(含审批中状态):1(启用),0(停用)")
    private Long status;

    /** 博士授予权(1:有 0:无) */
    @Excel(name = "博士授予权(1:有 0:无)")
    private Long hasDoctorGrant;

    /** 硕士授予权(1:有 0:无) */
    @Excel(name = "硕士授予权(1:有 0:无)")
    private Long hasMasterGrant;

    /** 版本号（乐观锁） */
    private Long version;

    /** 二级学科设立年份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "二级学科设立年份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date establishYear;

    /** 是否独立学位点(1:是 0:否) */
    @Excel(name = "是否独立学位点(1:是 0:否)")
    private Long isDegreeProgram;

    /** 重点学科级别 */
    @Excel(name = "重点学科级别")
    private Long keySubjectLevel;

    /** 年度招生名额 */
    @Excel(name = "年度招生名额")
    private Long enrollmentQuota;

    /** 创建人id */
    @Excel(name = "创建人id")
    private Long createId;

    /** 更新人id */
    @Excel(name = "更新人id")
    private Long updateId;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setFirstSubjectId(String firstSubjectId) 
    {
        this.firstSubjectId = firstSubjectId;
    }

    public String getFirstSubjectId() 
    {
        return firstSubjectId;
    }

    public void setCollegeId(String collegeId) 
    {
        this.collegeId = collegeId;
    }

    public String getCollegeId() 
    {
        return collegeId;
    }

    public void setSecondSubjectCode(String secondSubjectCode) 
    {
        this.secondSubjectCode = secondSubjectCode;
    }

    public String getSecondSubjectCode() 
    {
        return secondSubjectCode;
    }

    public void setSecondSubjectName(String secondSubjectName) 
    {
        this.secondSubjectName = secondSubjectName;
    }

    public String getSecondSubjectName() 
    {
        return secondSubjectName;
    }

    public void setSecondNameEnglish(String secondNameEnglish) 
    {
        this.secondNameEnglish = secondNameEnglish;
    }

    public String getSecondNameEnglish() 
    {
        return secondNameEnglish;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setAttachmentPath(String attachmentPath) 
    {
        this.attachmentPath = attachmentPath;
    }

    public String getAttachmentPath() 
    {
        return attachmentPath;
    }

    public void setResearchDirection(String researchDirection) 
    {
        this.researchDirection = researchDirection;
    }

    public String getResearchDirection() 
    {
        return researchDirection;
    }

    public void setLeaderId(Long leaderId) 
    {
        this.leaderId = leaderId;
    }

    public Long getLeaderId() 
    {
        return leaderId;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setHasDoctorGrant(Long hasDoctorGrant) 
    {
        this.hasDoctorGrant = hasDoctorGrant;
    }

    public Long getHasDoctorGrant() 
    {
        return hasDoctorGrant;
    }

    public void setHasMasterGrant(Long hasMasterGrant) 
    {
        this.hasMasterGrant = hasMasterGrant;
    }

    public Long getHasMasterGrant() 
    {
        return hasMasterGrant;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    public void setEstablishYear(Date establishYear) 
    {
        this.establishYear = establishYear;
    }

    public Date getEstablishYear() 
    {
        return establishYear;
    }

    public void setIsDegreeProgram(Long isDegreeProgram) 
    {
        this.isDegreeProgram = isDegreeProgram;
    }

    public Long getIsDegreeProgram() 
    {
        return isDegreeProgram;
    }

    public void setKeySubjectLevel(Long keySubjectLevel) 
    {
        this.keySubjectLevel = keySubjectLevel;
    }

    public Long getKeySubjectLevel() 
    {
        return keySubjectLevel;
    }

    public void setEnrollmentQuota(Long enrollmentQuota) 
    {
        this.enrollmentQuota = enrollmentQuota;
    }

    public Long getEnrollmentQuota() 
    {
        return enrollmentQuota;
    }

    public void setCreateId(Long createId) 
    {
        this.createId = createId;
    }

    public Long getCreateId() 
    {
        return createId;
    }

    public void setUpdateId(Long updateId) 
    {
        this.updateId = updateId;
    }

    public Long getUpdateId() 
    {
        return updateId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("firstSubjectId", getFirstSubjectId())
            .append("collegeId", getCollegeId())
            .append("secondSubjectCode", getSecondSubjectCode())
            .append("secondSubjectName", getSecondSubjectName())
            .append("secondNameEnglish", getSecondNameEnglish())
            .append("description", getDescription())
            .append("attachmentPath", getAttachmentPath())
            .append("researchDirection", getResearchDirection())
            .append("leaderId", getLeaderId())
            .append("status", getStatus())
            .append("hasDoctorGrant", getHasDoctorGrant())
            .append("hasMasterGrant", getHasMasterGrant())
            .append("version", getVersion())
            .append("establishYear", getEstablishYear())
            .append("isDegreeProgram", getIsDegreeProgram())
            .append("keySubjectLevel", getKeySubjectLevel())
            .append("enrollmentQuota", getEnrollmentQuota())
            .append("createId", getCreateId())
            .append("updateId", getUpdateId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
